package com.cjxt.ams.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cjxt.ams.domain.Dept;
import com.cjxt.ams.domain.TreeNode;
import com.cjxt.ams.utils.R;

import java.util.List;


/**
 * @author fangzhiyu
 * @version V1.0
 * @Description: 部门管理 业务层接口
 * @className: DeptService
 * @date 2021/11/19 16:05
 * @company:华勤技术股份有限公司
 * @copyright: Copyright (c) 2021
 */

public interface DeptService extends IService<Dept> {

    /**
     * @description: 根据父部门id查询所有子部门并放在list集合中
     * @author fangzhiyu
     * @date 2021/12/9 17:06
     * @param parentId 父部门id
     * @return java.util.List<java.lang.Integer>
     */
    List<Integer> queryDeptIdList(Integer parentId);

    /**
     * @description: 返回前端加载部门树所需要的数据
     * @author fangzhiyu
     * @date 2021/12/9 16:59
     * @param
     * @return 返回前台需要部门树的数据结构
     */
    List<TreeNode> treeData();

    /**
     * @description: 返回前端展示部门信息所需要的数据
     * @author fangzhiyu
     * @date 2021/12/9 16:59
     * @param deptList 部门信息
     * @return java.util.List<com.cjxt.ams.domain.Dept>
     */
    List<Dept> queryDeptList(List<Dept> deptList);

    /**
     * @description: 查询加载部门树所需要的数据
     * @author fangzhiyu
     * @date 2021/12/9 16:59
     * @return java.util.List<com.cjxt.ams.domain.Dept>
     */
    List<Dept> queryTree();


    /**
     * @description: 新增部门
     * @author fangzhiyu
     * @date 2021/12/9 16:59
     * @param dept 部门实体
     * @return com.cjxt.ams.utils.R
     */
    R insertDept(Dept dept);

    /**
     * @description: 修改部门信息
     * @author fangzhiyu
     * @date 2021/12/9 16:59
     * @param dept 部门实体
     * @return com.cjxt.ams.utils.R
     */
    R updateDept(Dept dept);
}
